System and method for optimizing user notifications for small computer devices

ABSTRACT

A system and method for notifying users in a manner that is appropriate for the event and the environment for the user. The method of the present invention relates to determining the desired properties of an event and assigning varying notification characteristics to that event. Profiles are created of the various events, wherein each profile relates to a different mode or situational environment, such as a meeting environment, an office or normal environment, a louder outside-type environment, etc. The invention further relates to placing the small computer device in a particular mode, either automatically or manually. Once in a particular mode the device provides notifications according to that mode.

TECHNICAL FIELD

[0001] The present invention relates to small, portable computingdevices, and particularly to computing devices that provide usernotifications relating to particular events. More particularly still,the present invention relates to algorithms implemented in determiningnotification characteristics.

BACKGROUND OF THE INVENTION

[0002] Small, handheld computing devices have been steadily growing inpopularity in recent years. The devices are known by different names,such as palmtops, pocket computers, personal digital assistants,personal organizers, H/PCs, or the like. Additionally, many portabletelephone systems, such as cellular phones, incorporate sufficientcomputing capabilities to fall within the category of the small,handheld computing devices. These devices, hereinafter “small computerdevices,” provide much of the same functionality as their largercounterparts. In particular, the small computer devices provide usersthe ability to perform word processing, task management, spreadsheetprocessing, address book functions and Internet browsing, as well asmany other functions. Of particular importance to small computer deviceusers is the ability to be notified of various events, such asappointment reminders, reception of email, and in the case of portablephones, to be notified of incoming telephone calls and text messages,etc.

[0003] Typically notifications may be presented to a user in manydifferent ways. For example, the notifications may be any number ortypes of audible signals, such as telephone rings, sound wave files orother sounds. Additionally, many small computing devices provide othermeans of notification, such as by displaying a notification on thedisplay area of the computing device, turning on or flashing a lightemitting diode (LED) light, or vibrating. Typically, each event isassociated with a particular type of notification and different eventsoften trigger or initiate different types of notifications. For example,receiving email may cause one sound while appointment reminders maytrigger a different sound.

[0004] One particular drawback associated with notifications in smallcomputing devices relates to the appropriateness of the type ofnotification used as compared with the constantly changing environmentfor the user. That is, given the small size of the small computerdevices, users typically carry them into numerous different situations.A particular type of notification may be appropriate for one situation,yet not for another. For example, an appointment reminder may beassociated with a chime-type notification that generates an audiblesignal at a predetermined time. The chime may be an appropriate type ofnotification when the user is alone in an office or at home, but may notbe appropriate when the user is in a meeting with other people who mayalso hear the chime.

[0005] One solution to this problem relates to having a mute button onthe small computer device so that during situations where a chimenotification may not be appropriate, the user can effectively turnaudible signals off. Such a mute button typically works in combinationwith the speaker at a hardware level. A mute button, however, is not anoptimal solution since a user may still want some notifications to beaudible. For example, a user may desire that all notifications be silentwhile in a meeting except for critical events, such as receiving a highpriority e-mail message. As another example, a user may want allappointment reminders to be silent but the same user may want emailnotifications to be audible when waiting for an important email ortelephone call from a particular person. The mute button does not allowfor the distinguishing between different notification events to providedifferent types of notifications to the user since it essentially turnsthe speaker off.

[0006] Additionally, the mute button only relates to audible signals anddoes not control vibrations or visual-type signals that may beinappropriate in certain circumstances. Therefore, if the user wants tochange the appointment reminders from an audible signal to a vibratingsignal, the mute button is ineffective. In such a case the user wouldhave to modify each appointment in the calendar, setting thenotification type to vibrate. Not only is this task cumbersome, but itmust also be performed each time the environment changes.

[0007] Another drawback associated with using a mute button to controlnotification types is that the user must manually press the mute buttonwhen entering a quiet environment, i.e., an environment wherein the userdoes not want to be audibly notified of events. Placing the onus on theuser to manually press the mute button increases the probability thatthe device will not be placed in a non-audible mode because users tendto forget such things until an audible signal interrupts the user. Thus,a mute button is an unsatisfactory solution to handling notifications.

[0008] It is with respect to these considerations and others that thepresent invention has been made.

SUMMARY OF THE INVENTION

[0009] The present invention relates to a system and method fornotifying users in a manner that is appropriate for the event and theenvironment for the user. The method of the present invention relates todetermining the desired properties of an event and assigning varyingnotification characteristics to that event. Profiles are created of thevarious events, wherein each profile relates to a different mode orsituational environment, such as a meeting environment, an office ornormal environment, a louder outside-type environment, etc. Theinvention further relates to placing the small computer device in aparticular mode, either automatically or manually. Once in a particularmode the device provides notifications according to that mode.

[0010] In accordance with certain aspects, the present invention relatesto a method of storing at least one profile of notification events inthe memory of a small computer device, wherein the notification eventsare associated with at least one notification type, and notifying a userof an event according to the stored profile. The method may store morethan one profile and each profile is associated with a uniquenotification mode. Additionally, a selection method is provided toselect one notification mode and once selected the mode is applied tothe small computer device and the device remains in the selected modeuntil another mode is selected. A calendar-type application program maygenerate the selection signal. The user is notified of events accordingto the selected notification mode.

[0011] The invention may be implemented as a computer process, acomputing system or as an article of manufacture such as a computerprogram product. The computer program product may be a computer storagemedium readable by a computer system and encoding a computer program ofinstructions for executing a computer process. The computer programproduct may also be a propagated signal on a carrier readable by acomputing system and encoding a computer program of instructions forexecuting a computer process.

[0012] A more complete appreciation of the present invention and itsimprovements can be obtained by reference to the accompanying drawings,which are briefly summarized below, to the following detail descriptionof presently preferred embodiments of the invention, and to the appendedclaims.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013]FIG. 1 illustrates a small computer device displaying a graphicaluser interface screen shot incorporating a sound mode icon related tothe present invention.

[0014]FIG. 2 is block diagram of a computer used in an embodiment of thepresent invention, such as the computer shown in FIG. 1.

[0015]FIG. 3 is a block diagram illustrating a software environment inan embodiment of the present invention.

[0016]FIG. 4 is a flow diagram illustrating operational flowcharacteristics of customizing a notification profile in accordance withthe present invention.

[0017] FIGS. 5-7 are exemplary displays incorporating aspects of thepresent invention for creating a profile.

[0018]FIG. 8 is a flow diagram showing the operational characteristicsof manually assigning and applying a notification mode for the smallcomputer device shown in FIG. 1.

[0019]FIG. 9 is a flow diagram showing the operational characteristicsof automatically assigning and applying a notification mode for thesmall computer device shown in FIG. 1.

DETAILED DESCRIPTION OF THE INVENTION

[0020] An embodiment of the invention provides control of usernotifications for different environments through the use of customizednotification profiles. Each profile has information related to each typeof notification event (such as a meeting reminder, a button press amongothers) and a corresponding notification type (such as an audible chime,a visual display, among others) for each notification event. Thus, eachprofile may be configured to provide different types of notificationsfor a plurality of different types of notification-type events. Usingthe profiles, the small computer device may be set to a predeterminedmode, wherein the mode relates to a predetermined notification profileso that each notification is presented to the user in the appropriatemanner. For example, while in a “meeting” mode, the small computerdevice uses the “meeting” profile to provide notifications to the userin an appropriate manner. Another embodiment of the inventionautomatically sets the small computer device into customizednotification mode in response to events stored in an associated calendarapplication.

[0021] The logical operations of the various embodiments of the presentinvention are implemented (1) as a sequence of computer implementedsteps running on a computing system and/or (2) as interconnected machinemodules within the computing system. The implementation is a matter ofchoice dependent on the performance requirements of the computing systemimplementing the invention. Accordingly, the logical operations makingup the embodiments of the present invention described herein arereferred to alternatively as operations, steps or modules.

[0022] A computing device 100 incorporating aspects of the presentinvention is shown in FIG. 1. In an embodiment of the invention, thecomputer 100 is a handheld computer having both input elements andoutput elements. Input elements may include touch screen display area102 and input buttons 104 and allow the user to enter information intothe computer 100. The small computing device also incorporates a sideinput element 106 allowing further user input. The side input 106element may be a rotary switch, a button, or any other type of manualinput element. In alternative embodiments, the small computing device100 may incorporate more or less input elements. For example, thedisplay 102 may not be a touch screen in some embodiments. In yetanother alternative embodiment, the computing device is a portable phonesystem, such as a cellular phone having a display 102 and input buttons104 and 106.

[0023] The small computing device 100 further incorporates output-typeelements, such as display 102 which displays information to the user,including a graphical user interface, such as display 112, text, and/orcontrols. Other output elements include speaker 108 and LED light 110.Additionally, device 100 may incorporate a vibration module (not shown)which causes the device 100 to vibrate wherein the vibration notifiesthe user of a predetermined event. Thus, the vibration module may bedeemed an output element since vibrations provide the indication of theevent or other computer-related occurrence to the user. In yet anotherembodiment, the computer device may incorporate headphone jack (notshown) for providing another means of providing output signals.

[0024] Display 112 is an exemplary display screen that may be shown ondisplay screen 102. Additionally, the exemplary display 112 illustratesa mode menu 114 which indicates to the user the current notificationmode for the system and which modes are available to the user. Asdiscussed in more detail below, the user may select a notification modefrom menu 114, to switch to other notification modes.

[0025] Although described herein in combination with a small computerdevice 100, in alternative embodiments the invention is used incombination with any number of computer systems, such as in desktopenvironments, laptop or notebook computer systems, multiprocessorsystems, micro-processor based or programmable consumer electronics,network PCs, mini computers, main frame computers and the like. Theinvention may also be practiced in distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a communications network in a distributed computing environment,programs may be located in both local and remote memory storage devices.In essence, any computer system having a plurality of output elements toprovide notifications to a user and a plurality of notification eventtypes may incorporate the present invention.

[0026] The computer 100 (shown in FIG. 1) incorporates a system 200 ofresources for implementing an embodiment of the invention, as shown inFIG. 2. The system 200 incorporates a computer 202 having at least onecentral processing unit (CPU) 204, a memory system 206, an input device208, and an output device 210. These elements are coupled by at leastone system bus 212.

[0027] The CPU 204 is of familiar design and includes an ArithmeticLogic Unit (ALU) 214 for performing computations, a collection ofregisters 216 for temporary storage of data and instructions, and acontrol unit 218 for controlling operation of the system 200. The CPU204 may be a microprocessor having any of a variety of architecturesincluding, but not limited to those architectures currently produced byIntel, Cyrix, AMD, IBM and Motorola.

[0028] The system memory 206 comprises a main memory 220, in the form ofmedia such as random access memory (RAM) and read only memory (ROM), andmay incorporate or be adapted to connect to secondary storage 222 in theform of long term storage mediums such as hard disks, floppy disks,tape, compact disks (CDs), flash memory, etc. and other devices thatstore data using electrical, magnetic, optical or other recording media.The main memory 220 may also comprise video display memory fordisplaying images through the output device 210, such as a displayscreen. The memory can comprise a variety of alternative componentshaving a variety of storage capacities such as magnetic cassettes memorycards, video digital disks, Bernoulli cartridges, random accessmemories, read only memories and the like may also be used in theexemplary operating environment. Memory devices within the memory systemand their associated computer readable media provide non-volatilestorage of computer readable instructions, data structures, programs andother data for the computer system.

[0029] The system bus 212 may be any of several types of bus structuressuch as a memory bus, a peripheral bus or a local bus using any of avariety of bus architectures.

[0030] The input and output devices are also familiar and are brieflydiscussed above with respect to FIG. 1. Although not shown, and inaddition to those described above, the input device can further comprisea microphone, a small keyboard, a mouse, a wireless communicationsystem, a touch pad etc. Similarly, the output device may furthercomprise output elements such as a printer, a wireless communicationsystem, etc. Some devices, such as a network interface or a modem can beused as input and/or output devices. The input and output devices areconnected to the computer 202 through system buses 212.

[0031] The computer system 200 further comprises an operating system andusually one or more application programs. The operating system comprisesa set of programs that control the operation of the system 200, controlthe allocation of resources, provide a graphical user interface to theuser, facilitate access to local or remote information, and may alsoinclude certain utility programs such as a notification module. Anapplication program is software that runs on top of the operating systemsoftware and uses computer resources made available through theoperating system to perform application specific tasks desired by theuser. In general, applications are responsible for generatingnotifications in accordance with the present invention, but theinvention may be integrated into the operating system, as part of anotification control object, for example. Exemplary operating systems inwhich the notification system may be integrated with include MicrosoftCorporation's Windows for Pocket PC operating system for handheldpersonal computers.

[0032] Computing device 100 typically includes at least some form ofcomputer readable media. Computer readable media can be any availablemedia that can be accessed by 100. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media. Computer storage media includes volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information such as computer readableinstructions, data structures, program modules or other data. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disks (DVD)or other optical storage, magnetic cassettes, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other mediumwhich can be used to store the desired information and which can beaccessed by 100. Communication media typically embodies computerreadable instructions, data structures, program modules or other data ina modulated data signal such as a carrier wave or other transportmechanism and includes any information delivery media. The term“modulated data signal” means a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia includes wired media such as a wired network or direct-wiredconnection, and wireless media such as acoustic, RF, infrared and otherwireless media. Combinations of any of the above should also be includedwithin the scope of computer readable media.

[0033] An exemplary software environment 300 that incorporates aspectsof the present invention is shown in FIG. 3. Application program 302 isexecuted to create or edit a notification profile. The applicationprogram 302 communicates with operating system 304 through anapplication program interface 306. In alternative embodiments, theapplication program 302 communicates directly with the operating system304. Although the embodiment shown in FIG. 3 provides applicationprogram 302 as the program for customizing notification profiles, in analternative embodiment, the notification profile customization utilityis integrated with operating system 304.

[0034] The application program 302 communicates with a user through theoperating system, the input/output control module 308 and theinput/output devices 208 and 210. The application program 302 receivesinput signals to customize various notification modes. Each mode has anassociated profile and is stored by the application program 302 in thememory system 206 through the operating system 304 through a memorycontrol module 310. Additionally, the application program 302 providesthe user the ability to set the notification mode for the device 100.Once the user chooses a particular notification mode, the applicationprogram informs the operating system 304 of the notification mode.Later, once a notification event occurs, the operating system 304 usesthe chosen notification mode to initiate user notifications.

[0035] Notification profiles are stored in the memory system 206 andtypically comprise a lookup table of values. In an embodiment of theinvention, the memory 206 stores at least three different profiles: anormal profile, an outside profile and a meeting profile. The normalprofile has intermediate volume levels for notifications and does notemploy vibration type notification since vibrations tend to consumesignificant amounts of power. The outside profile has louder volumelevels since it can be harder to hear a notification outside. Further,the outside profile employs vibration to further aid the user inrecognizing notifications. The meeting profile has volume levels set tosilent so that others are not interrupted. Additionally, the meetingprofile may also employ vibrations as a notification type that informsthe user of an event but does not interfere with the meeting. Table 1,shown below, highlights some of these and other features associated withthese exemplary notification profiles. TABLE 1 Profile Volume SoundFiles Enabled Notification Type Normal Intermediate Default Sound FilesSound, LED and Messages Outside Loud Default Sound Files Sound andVibration Meeting Disabled No Sounds Used LED, Messages and Vibration

[0036] As may be appreciated, many other profiles may be created andstored. For example the system may incorporate an “off” profile whicheffectively turns all notifications off. Additionally, although notshown, profiles may be created that provide for certain notificationtypes, such as sound, for only specific notification events, such ascritical reminders. As an example, the profile may be set to silent modefor all notification events except for a phone call or email from aparticular person.

[0037]FIG. 4 is a flow chart of the operational characteristics relatedto customizing a notification mode, i.e., creating a notificationprofile in accordance with the present invention. The customizationprocess 400 may be performed for each notification mode. Differentmethods may be employed in order to initiate flow 400. That is, the flow400 may be started by the user through the selection of customizationitem in a predetermined menu or a customization icon. In otherembodiments, other initiation events are contemplated, such as pressinga predetermined button or combination of buttons.

[0038] To begin, the select mode operation 402 selects a mode that is tobe modified, wherein the mode may be named, such as “meeting,” “normal,”etc. In one embodiment, the selection of a particular mode may beperformed using a drop-down menu by a user. Other embodiments providefor the selection of modes in other manners, such as by typing the modename, for example.

[0039] Once a particular mode is selected, volume selection operation404 selects the volume levels for a plurality of different notificationevents. For example, the volume levels for screen taps and controlbutton presses may be set by volume selection operation 404 as well asthe volume levels for system events, e.g., “critical stop” and others.Typically, the user selects these volume levels based on anunderstanding of the environments that the particular profile will beused. Following volume selection operation 404, set sound operation 406sets the sound files for the various system events. Setting the soundfiles typically involves selecting a system event and assigning a soundfile, such as a “.wav” file to the system event. Again, the usertypically sets these sound files based on an understanding of theenvironment for the profile and an understanding of which sound filesare recognizable for different notification events.

[0040] Next, set reminder operation 408 sets the type or types ofnotifications to be performed by the small computer device in remindingthe user of an event. Set reminder operation sets notification types,such as vibration, sound, flashing light, or displaying a message to theuser to remind the user of an event. In an embodiment, any one or allmay be selected to inform the user of an event, depending on theprofile. Moreover, for a particular profile, the user may decide toselect no notification types for reminders.

[0041] Following set operation 408, store operation 410 stores a profilefor the selected mode. Storing the profile involves maintaining a lookup table in memory wherein the table lists all events and theirassociated notification types according to set operations 404, 406 and408.

[0042] Once the notification types for the reminders have been set andthe profile has been stored, determination act 412 determines whetheranother notification mode is to be customized. If not, then flowbranches NO and the flow 400 ends at end operation 414. Otherwise, flowbranches YES to select operation 402 and flow 400 is repeated.Determination act 412 may occur explicitly by prompting the use toselect another mode for customization or by selecting a “complete” or“done” control button to indicate that no more modes are to becustomized. Alternatively, determination act 412 may occur implicitlywherein the user either selects another mode for customization or exitsthe customization process by selecting another, unrelated feature.

[0043] As may be appreciated, the acts of customizing the volume levels,sound files and reminder information may be performed in differentorder. Moreover, in an embodiment, default values for these items arestored in memory. When default values are stored for the separateprofiles, a user has the option of customizing all, some or none of thevarious elements, e.g., volume, sound files, etc.

[0044]FIGS. 5, 6 and 7 illustrate screen shots for an embodiment of theinvention during the flow 400 of customizing a notification mode. FIG. 5illustrates volume selection operation 404. The particular mode is shownin text box 502. Control 504 allows for the drop-down selection ofanother mode, if desired. Slide controls 506, 508 and 510 are used toselect volume levels for different types of notification events. Slidecontrol 506 is used to select the volume level for screen taps whilecontrol 508 is used to select the volume level for hardware buttonpresses. Additionally, slide control 510 is used to select the volumelevel for system events, such as a critical stop. As may be appreciated,in the illustrated embodiment, no volume control is provided for settingthe volume level for reminders in this particular display. Instead thevolume control for reminders is provided during the setting ofnotification types discussed below. Alternative embodiments provide forthe setting of the volume for reminders as well as from a displaysimilar to display 500.

[0045]FIG. 6 demonstrates the setting of the sound files for the varioussystem events. As in FIG. 5, the present notification mode isillustrated in text box 502. Setting the sound files for various systemevents relates to assigning a particular file, such as a “.wav”executable file to be executed when the predetermined system eventoccurs. Display 600 provides the graphical user interface display toassign these files.

[0046]FIG. 7 illustrates a graphical user interface display 700 forsetting notification types to reminder type notifications. That is, areminder is a particular type of notification event that is triggered inorder to remind the user of something, such as a meeting time or a duedate for a project, for example. These reminders are typicallyassociated with a calendar type application program, as discussed inmore detail below. Reminder-type notification events may be set, usingdisplay 700 to trigger different types of notifications. For example,the reminders may be set to cause vibrations by checking box 702,display a message by checking display box 704, flash a light by checkinglight box 706 or to play a sound by checking sound box 708. If the soundbox 708 is selected controls 710 are enabled, otherwise controls 710 aredisabled. Controls 710 provide for the management of the types andvolume of the sound that is played once a reminder initiates anotification.

[0047]FIG. 8 is a flow chart of the operational characteristics of anembodiment of the present invention related to setting the device into anotification mode. The flow begins when receive operation 802 receivesan indication to select a sound mode. That is, in an embodiment, thesystem is always in a mode, and in order to switch the system from theexisting mode to a new one, the system must receive an indication tothis effect. For example, the user may select a mode selection icon onthe system which indicates to the system that the user desires to changenotification modes. Alternatively, the user could select a menu optionrelated to switching the particular mode of the system. In yet otherembodiments, the user performs other functions in order to indicate tothe system that the modes should be switched.

[0048] Once the system receives an indication to switch notificationmodes, display operation 804 displays a mode menu, such as mode menu 114shown in FIG. 1. A mode menu displays the available mode options to theuser. Moreover, the menu may provide a visual indication to the userrelating to the current or existing notification mode, such as a checkmark next to the current mode.

[0049] Following the display of the mode menu, receive operation 806receives an indication as to the selected notification mode. That is,the user enters or selects one of the menu options from the mode menu.Selecting one of the menu options causes the system to receive a signalrelated to the selected menu option. Once receive operation 806 receivesa selection, application operation 808 applies the selected mode to thesmall computer device. While the mode is applied to the device, allnotifications presented to the user are done so based on the selectedmode. Additionally, the small computer device remains in the selectedmode until the system receives another indication to select a differentsound mode, such as in operation 802.

[0050]FIG. 9 is a flow chart of the operational characteristics of analternative embodiment of the present invention related to automaticallysetting the device into a notification mode. In an embodiment of theinvention, flow 900 only executes when the user has selected “automaticprofile switching” as part of the user preferences. Otherwise, theautomatic notification flow is not performed and the user must manuallyenter the device into a particular notification profile. Alternatively,the device 100 may be configured to automatically enter differentnotification profiles and the user may select to turn off thisparticular notification preference.

[0051] The flow 900 begins when a calendar-related event occurs. Hence,in this embodiment, the small computer device has a calendar-typeapplication capable of storing appointments and other calendar-relateditems. Moreover, the small computer device has an internal clock systemthereby allowing the small computer device to remind the user ofupcoming events scheduled in the calendar application.

[0052] Upon the occurrence of a calendar-related event, determinationoperation 902 determines whether a predetermined notification mode hasbeen set for the event. In one embodiment, the user may set a particularnotification mode for an event when the event is created and/or edited.Alternatively, the user may associate notification modes with calendarevents independently of the creation or editing of the calendar event.If determination operation 902 determines that no predeterminednotification mode has been set for the particular calendar event, flownbranches NO to end operation 908. In such a case, the notification modeis not changed and any subsequent notifications are presented to theuser according to the existing notification mode.

[0053] Otherwise, if determination operation 902 determines that apredetermined notification mode has been associated with the calendarevent, flow branches YES to application operation 904. Applicationoperation 904 automatically applies the selected mode to the smallcomputer device and any subsequent notifications are presented to theuser according to the selected mode. The device remains in the selectedmode until the end of the calendar event. Upon the ending of thecalendar event, the device is automatically switched back to theprevious notification mode. That is, since calendar events typicallyhave both a start time and an end time, the end time is used to switchthe notification mode back to its original state.

[0054] In an embodiment of the invention, the software could support theautomatic profile switching for each appointment individually, whereinthe user manually associates an appointment with a particular profile.That profile is then used for all reminders occurring during that oneappointment. Alternatively, the user may set a predetermined profile forall appointments of a particular type, e.g., busy, out of office,tentative, free, etc. Therefore, the user does not have to manually seta profile for each appointment individually, but can set a profile basedon the type of appointment in a global manner. In such a case, thedevice automatically enters profile switching mode once an appointmentof a predetermined type begins.

[0055] Flow 900 may be described by way of an example. Assume a calendarapplication has stored a one-hour meeting that begins at 1:00 PM andends at 2:00 PM. Further assume that the meeting event has an associatedpredetermined notification mode, called “meeting.” At 1:00 PM, on theday of the meeting, the calendar application recognizes that a calendarevent has started. At this point, the calendar application determinesthat a predetermined notification mode has been associated with theevent, such as at determination operation 902. The calendar applicationcauses, through the operating system, the small device to be switchedinto meeting mode, such as at operation 904. At 2:00 PM, the calendarapplication recognizes that the meeting has ended and causes, throughthe operating system, the small computer device to be switched back intonormal mode, or whatever mode the device was in prior to the start ofthe meeting.

[0056] When notification events occur, the application or the operatingsystem must decide if a particular type of event is presented to theuser and the type of notification that should be used. That is, in oneembodiment, the application determines which mode the device is in anddetermines, based on the mode, what type of notification to present tothe user. In such a case the application provides the operating systemwith a control signal indicating to execute the notification accordingto the type of notification stored in the particular profile. In analternative embodiment, the application merely conducts a control to theoperating system to present a notification to the user. In that case,the operating system determines what mode the device is in and presentsthe notification to the user according to the stored profile.

[0057] The above-described invention allows the user to configuresophisticated profiles relating to different modes or expectedenvironments. These profiles maintain a listing of the various type ofnotification events, e.g., key presses, reminders, wirelesscommunication signals, phone calls, text messages, etc. Additionally,the profiles maintain a list of notification types, e.g., audible,vibration, visual, etc. wherein each notification event is associatedwith one or more notification types. Thus, prior to providing the user anotification, the device determines the mode that the device is in andpresents the notification according to the associated profile. Moreover,the device may be automatically placed in a predetermined mode based ona stored calendar event to relieve the user of the responsibility ofremembering when to place the device in a new mode.

[0058] Although the invention has been described in language specific tostructural features and/or methodological steps, it is to be understoodthat the invention defined in the appended claims is not necessarilylimited to the specific features or steps described. Rather, thespecific features and steps are disclosed as preferred forms ofimplementing the claimed invention. Since many embodiments of theinvention can be made without departing from the spirit and scope of theinvention, the invention resides in the claims hereinafter appended.

What is claimed is:
 1. A method of notifying a user of a notificationevent occurring in a small computer device, the small computer devicehaving a memory, the method comprising: storing at least one profile ofnotification events in the memory of the small computer device, whereinthe notification events are associated with at least one notificationtype; and notifying a user of an event according to the stored profile.2. A method as defined in claim 1 wherein more than one profile isstored in memory and wherein the method further comprises: associatingeach profile with a unique notification mode; receiving a selectionsignal to select one notification mode; applying the selectednotification mode to the small computer device and wherein the deviceremains in the selected mode until another mode is selected and whereinthe user is notified of events according to the selected notificationmode.
 3. A method as defined in claim 2 wherein the method furthercomprises: receiving an indication to select a notification mode;displaying a notification mode menu; and wherein the received selectionsignal relates to a selection from the displayed notification mode menu.4. A method as defined in claim 2 wherein the computer system furthercomprises a calendar-type application program storing reminder eventsand wherein the selection signal is generated by the calendar-typeapplication program.
 5. A method as defined in claim 1 wherein thenotification type is a vibrating signal, audible signal, visual signalor off.
 6. A computer program product readable by a computer andencoding instructions for executing a computer process for notifying auser of notification events, the process comprising: storing at leastone profile of notification events, wherein the notification events areassociated with at least one notification type; associating each profilewith a unique notification mode; receiving a selection signal to selectone notification mode; applying the selected notification mode to thesmall computer device and wherein the device remains in the selectedmode until another mode is selected and wherein the user is notified ofevents according to the selected notification mode.
 7. A computerprogram product as defined in claim 6 wherein the process furthercomprises: receiving an indication to select a notification mode;displaying a notification mode menu; and wherein the received selectionsignal relates to a selection from the displayed notification mode menu.8. A computer program product as defined in claim 6 wherein the computerfurther comprises a calendar-type application program storing reminderevents and wherein the selection signal is generated by thecalendar-type application program.
 9. A computer system for notifying auser of notification events, the system comprising: a memory unit forstoring a plurality of profiles, the profile relating notificationevents with notification types; a first output device for notifying theuser of a notification event using a first notification type; a secondoutput device for notifying the user of the notification event using asecond notification type wherein the second notification type isdifferent from the first notification type; a processing unit forautomatically determining whether to notify the user using the firstnotification type or the second notification type.
 10. A computer systemas defined in claim 9 wherein the notification event is the reception ofemail over a wireless network.
 11. A computer system as defined in claim9 wherein the notification event is a calendar event stored by acalendar-type application program.
 12. A computer system as defined inclaim 9 wherein the first notification type is an audible signal and thesecond notification type is a visual display.
 13. A computer system asdefined in claim 9 wherein each notification types the firstnotification type is a vibration signal and the second notificationsignal is an audible signal.